#ifndef __SCANRESULTS_H__
#define __SCANRESULTS_H__

// Qt Includes
#include <QString>
#include <QSqlDatabase>

// Local Includes
#include "scanresultrecords.h"

// ******************************************************************
// CScanResults
// ******************************************************************
class CScanResults
{
public:
/////////////////////////////////////////////////////////////////////
// Construction & Destruction
/////////////////////////////////////////////////////////////////////
	CScanResults(const QString &strDatabaseName);
/////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////
// Member Functions
/////////////////////////////////////////////////////////////////////
	QList<quint8> getSeverities() const;
	QList<NScanResultRecords::PluginRecord> getPlugins(bool bWithoutResults/* = true*/) const;
	QList<NScanResultRecords::FileRecord> getFiles(bool bWithoutResults/* = true*/) const;

	QList<NScanResultRecords::ResultRecord> getResultsBySeverity(quint8 nSeverity) const;
	QList<NScanResultRecords::ResultRecord> getResultsByPluginID(quint32 nPluginID) const;
	QList<NScanResultRecords::ResultRecord> getResultsByFileID(quint32 nFileID) const;

	NScanResultRecords::PluginRecord getPluginByID(quint32 nPluginID) const;
	NScanResultRecords::FileRecord getFileByID(quint32 nFileID) const;
/////////////////////////////////////////////////////////////////////

private:
/////////////////////////////////////////////////////////////////////
// Member Variables
/////////////////////////////////////////////////////////////////////
	QSqlDatabase m_theDatabase;
/////////////////////////////////////////////////////////////////////
};

#endif // #ifndef __SCANRESULTS_H__
